﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using SquareTasks.Models;
using System.Data.Entity;

namespace SquareTasks
{
    // Remarque : pour obtenir des instructions sur l'activation du mode classique IIS6 ou IIS7, 
    // visitez http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Nom d'itinéraire
                "{controller}/{action}/{id}", // URL avec des paramètres
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

            Database.SetInitializer<SquareTasksContext>
               (new DropCreateDatabaseIfModelChanges<SquareTasksContext>());


            
            SquareTasksContext context = new SquareTasksContext();
            //context.Database.Delete();
            //context.Database.Create();
            context.Database.Initialize(true);
            context.SaveChanges();

            context.Dispose();


             context = new SquareTasksContext();
            if (context.Tasks.Count().Equals(0))
            {
                Category uneCateg2 = new Category();
                uneCateg2.ID = 3;
                uneCateg2.NomCategorie = "Indéfini";
                context.Categories.Add(uneCateg2);

                Category uneCateg = new Category();
                uneCateg.ID = 0;
                uneCateg.NomCategorie = "Perso";
                context.Categories.Add(uneCateg);

                Tasks uneTache = new Tasks();
                uneTache.Id = 1;
                uneTache.Categorie = uneCateg;
                uneTache.dateCreation = DateTime.Now;
                uneTache.Description = "La tache 1";
                uneTache.EtatTache = 0;
                uneTache.favori = false;
                uneTache.lieu = "Chartres";
                uneTache.Objet = "Payer impot";
                uneTache.priorite = 75;
                context.Tasks.Add(uneTache);


                Category uneCateg1 = new Category();
                uneCateg1.ID = 1;
                uneCateg1.NomCategorie = "Boulot";
                context.Categories.Add(uneCateg1);

                Tasks uneTache1 = new Tasks();
                uneTache1.Id = 2;
                uneTache1.Categorie = uneCateg1;
                uneTache1.dateCreation = DateTime.Now;
                uneTache1.Description = "La tache 2";
                uneTache1.EtatTache = 0;
                uneTache1.favori = false;
                uneTache1.lieu = "Paris";
                uneTache1.Objet = "Rediger CR";
                uneTache1.priorite = 150;

                context.Tasks.Add(uneTache1);

                context.SaveChanges();
            }
        }
    }
}